package model

// ArticleStatus 文章状态枚举
type ArticleStatus int

const (
	DRAFT     ArticleStatus = 1 // 草稿（文章还未发布）
	PUBLISHED ArticleStatus = 2 // 已发布的（文章被公开了）
	HIDDEN    ArticleStatus = 3 // 已隐藏的（内容不合规）
	REMOVED   ArticleStatus = 4 // 已移除的（文章被放入垃圾桶了）
)

// Value 返回状态的整数值
func (s ArticleStatus) Value() int {
	return int(s)
}

// String 返回状态的字符串表示
func (s ArticleStatus) String() string {
	switch s {
	case DRAFT:
		return "DRAFT"
	case PUBLISHED:
		return "PUBLISHED"
	case HIDDEN:
		return "HIDDEN"
	case REMOVED:
		return "REMOVED"
	default:
		return ""
	}
}

// CommentStatus 评论状态枚举
type CommentStatus int

const (
	COMMENT_CREATE CommentStatus = 0 // 评论创建状态
	COMMENT_OPENED CommentStatus = 1 // 评论打开状态
	COMMENT_CLOSED CommentStatus = 2 // 评论隐藏状态
)

// Value 返回状态的整数值
func (s CommentStatus) Value() int {
	return int(s)
}

// String 返回状态的字符串表示
func (s CommentStatus) String() string {
	switch s {
	case COMMENT_CREATE:
		return "COMMENT_CREATE"
	case COMMENT_OPENED:
		return "COMMENT_OPENED"
	case COMMENT_CLOSED:
		return "COMMENT_CLOSED"
	default:
		return ""
	}
}

// CollectEnum 类型
type CollectEnum string

const (
	COMMENT_LIKE  CollectEnum = "comment_like"  // 点赞评论
	BLOG_LIKE     CollectEnum = "blog_like"     // 点赞文章
	BLOG_FAVORITE CollectEnum = "blog_favorite" // 收藏文章
)

// String 返回状态的字符串表示
func (s CollectEnum) String() string {
	return string(s)
}

type UserStatus int

const (
	USER_NORMAL  UserStatus = 1 // 正常
	USER_FROZEN  UserStatus = 2 // 冻结（如账号异常）
	USER_DISABLE UserStatus = 3 // 关闭（如注销）
)

// Value 返回状态的整数值
func (s UserStatus) Value() int {
	return int(s)
}

// String 返回状态的字符串表示
func (s UserStatus) String() string {
	switch s {
	case USER_NORMAL:
		return "USER_NORMAL"
	case USER_FROZEN:
		return "USER_FROZEN"
	case USER_DISABLE:
		return "USER_DISABLE"
	default:
		return ""
	}
}

// MomentTopic 通知主题枚举
type MomentTopic string

const (
	Moment_Blog          MomentTopic = "blog"          // 文章发布通知
	Moment_Follow        MomentTopic = "follow"        // 用户被关注通知
	Moment_Favorite      MomentTopic = "favorite"      // 文章被收藏通知
	Moment_Like          MomentTopic = "like"          // 文章被点赞通知
	Moment_Comment       MomentTopic = "comment"       // 文章被评论通知
	Moment_Comment_reply MomentTopic = "comment_reply" // 评论被回复通知

)

// Value 返回值
func (s MomentTopic) Value() string {
	return string(s)
}

// String 返回字符串表示
func (s MomentTopic) String() string {
	switch s {
	case Moment_Blog:
		return "Moment_Blog"
	case Moment_Follow:
		return "Moment_Follow"
	case Moment_Favorite:
		return "Moment_Favorite"
	case Moment_Like:
		return "Moment_Like"
	case Moment_Comment:
		return "Moment_Comment"
	case Moment_Comment_reply:
		return "Moment_Comment_reply"
	default:
		return ""
	}
}

// FeedbackKind 反馈类型枚举
type FeedbackKind string

// 新增：反馈类型常量
const (
	Feedback_bug        FeedbackKind = "bug"        // Bug报告
	Feedback_account    FeedbackKind = "account"    // 账号问题
	Feedback_suggestion FeedbackKind = "suggestion" // 功能建议
	Feedback_other      FeedbackKind = "other"      // 其他反馈
)

// Value 返回值
func (s FeedbackKind) Value() string {
	return string(s)
}

// String 返回字符串表示
func (s FeedbackKind) String() string {
	switch s {
	case Feedback_bug:
		return "Bug报告"
	case Feedback_account:
		return "账号问题"
	case Feedback_suggestion:
		return "功能建议"
	case Feedback_other:
		return "其他反馈"
	default:
		return ""
	}
}
